// https://news.sina.com.cn/roll/#pageid=153&lid=2509&k=&num=50&page=1
(()=>{
    /** base64编码类型 */
const URI = 'data:application/vnd.ms-excel;base64,';
/** 转换模板 */
const template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><meta charset="UTF-8"><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>';
/** 获取所有栏目 */
const colDoms = d_list.getElementsByTagName('ul');
/** 转换base64 */
function handleToBase64(s) {
    return window.btoa(unescape(encodeURIComponent(s)))
}
/** 输出新闻对象列表 */
function handleTransformNewsList(ulObjs) {
    const newList = []; // 转换输出后的新闻列表
    for (let i = 0; i < ulObjs.length; i++) {
        const newsObj = {
            colName: '', // 栏目名称
            title: '', // 新闻标题
            date: '', // 新闻日期
            url: '' // 地址
        }
        /** 新闻列表 */
        const newsListDoms = ulObjs[i].getElementsByTagName('li');
        /** 新闻列表对象转换 */
        for (let j = 0; j < newsListDoms.length; j++) {
            const newsLink = newsListDoms[j].getElementsByTagName('a')[0];
            // 栏目标题
            newsObj.colName = newsListDoms[j].getElementsByClassName('c_chl')[0].innerText;
            // 新闻标题
            newsObj.title = newsLink.innerText;
            // 新闻时间
            newsObj.date = newsListDoms[j].getElementsByClassName('c_time')[0].innerText;
            // 新闻链接
            newsObj.url = newsLink.href;
            // 添加到数组
            newList.push(newsObj)
        }
    }
    return newList;
}
/** 创建并导出表格 */
function handleCreateAndExportExcel(worksheet = 'worksheet') {
    const newsList = handleTransformNewsList(colDoms);
    const newsHtml = newsList.map(item => `<tr><td align="center">${item.colName}</td><td align="center">${item.title}</td><td align="center">${item.date}</td><td align="center">${item.url}</td></tr>`).join('');
    const resExcel = template.replace('{worksheet}', worksheet).replace('{table}', `<table border="1"><th align="center">栏目</td><th align="center">名称</td><th align="center">时间</td><th align="center">链接</td></tr>${newsHtml}</table>
    `);
    window.open(URI + handleToBase64(resExcel));
}
handleCreateAndExportExcel();
})()